1. Technical Field
The present invention relates generally to an improved data processing system and in particular to a method and apparatus for providing a connection between objects in a data processing system. Still more particularly, the present invention provides a method and apparatus for dynamically providing connections with different types of security between a client proxy object and a server target object.
2. Description of Related Art
In providing communication and data exchange between objects of different types of origin and design, the Common Object Request Broker Architecture (CORBA) has been designed by the Object Management Group (OMG) to provide interoperability among the rapidly proliferating number of hardware and software products in the marketplace. CORBA specifies a system, which provides interoperability between objects in a heterogeneous, distributed environment and in a way transparent to the programmer. The OMG Object Model defines common object semantics for specifying the externally visible characteristics of objects in a standard and implementation-independent way. In this model clients request services from objects (which will also be called server target objects) through a well-defined interface. This interface is specified in OMG IDL (Interface Definition Language). A client proxy object accesses an object by issuing a request to the object. A client proxy object represents the server target object in the client process. The request is an event, and it carries information including an operation, the object reference of the service provider, and actual parameters (if any). The object reference is an object name that defines an object reliably.
The central component of CORBA is the Object Request Broker (ORB). It encompasses all of the communication infrastructure necessary to identify and locate objects, handle connection management, and deliver data. In general, the ORB Core is the most crucial part of the Object Request Broker; it is responsible for communication of requests.
The basic functionality provided by the ORB consists of passing the requests from client proxy objects to the object implementations on which they are invoked. In order to make a request the client proxy object can communicate with the ORB. Core through the IDL stub or through the Dynamic Invocation Interface (DII). The stub represents the mapping between the language of implementation of the client proxy object the ORB core. Thus the client proxy object can be written in any language as long as the implementation of the ORB supports this mapping. The ORB Core then transfers the request to the object implementation which receives the request as an up-call through either an IDL skeleton, or a dynamic skeleton.
In providing services to client proxy objects in CORBA, the OMG security service specification defines client-server security authentication functions in terms of the CORBA programming model. A strong decoupling relationship between this security service implementation and the ORB implementation is present. With the current implementations, dynamically providing security mechanisms for different specifications or protocols is absent.
Therefore, it would be advantageous to have an improved method and apparatus for specifying a security mechanism for use in connections between objects.
The present invention provides a method and apparatus in a computer system for establishing a connection between a client proxy object and a server target object. A request is received from the client proxy object to access the server target object, wherein the request includes an identification of a type of communication. The request also may include a type of message to be sent to the server target object. A connection object is identified based on the type of communication, the type of message, and quality of protection. The connection object implementing the type of communication is returned, wherein the connection between the client proxy object and the server target object is facilitated using the connection object. A server target object is an object that provides the function or implementation of the object in the server process.